package com.darwin.darwinIsometric.utils
{
	/**
	 * iso链表
	 * @author lipi
	 */
	public class IsoLinkedList
	{
		public function IsoLinkedList()
		{
			
		}
		
		public var startItem:IsoLinkedItem;
		public var endItem:IsoLinkedItem;
		
		/**
		 * 加入一个项
		 * @param item
		 */
		public function push(item:IsoLinkedItem):void
		{
			if(startItem == null)
			{
				startItem = item;
			}else{
				endItem.next = item;
			}
			
			endItem = item;
		}
		
		public function shift():IsoLinkedItem
		{
			var shiftItem:IsoLinkedItem = startItem;
			if(shiftItem != null)
			{
				startItem = shiftItem.next;
				if(startItem == null)
				{
					endItem = null;
				}
				shiftItem.next = null;
			}
			return shiftItem;
		}
		
		/**
		 * 清除整个链表
		 */
		public function clear():void
		{
			startItem = null;
			endItem = null;
		}
		
		public function isNull():Boolean
		{
			if(startItem == null && endItem == null)
			{
				return true;
			}
			return false;
		}
		
	}
}